home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 7 / BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso / Files / Prog / T / Think-Pascal-7.0.cpt / THINK Pascal Interfaces / HyperXCmd.p < prev    next >
Encoding:
Text File  |  1991-04-05  |  10.2 KB  |  253 lines  |  [TEXT/PJMM]

  1. {    This file has been processed by The THINK Pascal Source Converter, v1.1.    }
  2.  
  3. {}
  4. {    HyperXCmd.p}
  5. {    Definition file for HyperCard XCMDs and XFCNs in Pascal.}
  6. {}
  7. {    Copyright Apple Computer, Inc.  1987-1990}
  8. {    All rights reserved}
  9. {}
  10.  
  11.  
  12. {$IFC UNDEFINED UsingIncludes}
  13. {$SETC UsingIncludes := 0}
  14. {$ENDC}
  15.  
  16.  
  17. unit HyperXCmd;
  18. interface
  19.     uses
  20.         Types, Quickdraw, Events, TextEdit, Menus, Dialogs, OSUtils, Files, StandardFile;
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.     const
  47.   { result codes }
  48.         xresSucc = 0;
  49.         xresFail = 1;
  50.         xresNotImp = 2;
  51.  
  52.   { XCMDBlock constants for event.what... }
  53.         xOpenEvt = 1000;         { the first event after you are created }
  54.         xCloseEvt = 1001;         { your window is being forced close (Quit?) }
  55.         xGiveUpEditEvt = 1002;         { you are losing Edit... }
  56.         xGiveUpSoundEvt = 1003;        { someone else is requesting HyperCard's sound channel }
  57.         xHidePalettesEvt = 1004;        { someone called HideHCPalettes }
  58.         xShowPalettesEvt = 1005;        { someone called ShowHCPalettes }
  59.         xEditUndo = 1100;        { Edit——Undo }
  60.         xEditCut = 1102;        { Edit——Cut }
  61.         xEditCopy = 1103;        { Edit——Copy }
  62.         xEditPaste = 1104;        { Edit——Paste }
  63.         xEditClear = 1105;        { Edit——Clear }
  64.         xSendEvt = 1200;        { script has sent you a message (text) }
  65.         xSetPropEvt = 1201;        { set a window property }
  66.         xGetPropEvt = 1202;        { get a window property }
  67.         xCursorWithin = 1300;        { cursor is within the window }
  68.         xMenuEvt = 1400;        { user has selected an item in your menu }
  69.         xMBarClickedEvt = 1401;        { a menu is about to be shown--update if needed }
  70.  
  71.         xShowWatchInfoEvt = 1501;        { for variable and message watchers }
  72.         xScriptErrorEvt = 1502;        { place the insertion point }
  73.         xDebugErrorEvt = 1503;        { user clicked "Debug" at a complaint }
  74.         xDebugStepEvt = 1504;        { hilite the line }
  75.         xDebugTraceEvt = 1505;        { same as step but tracing }
  76.         xDebugFinishedEvt = 1506;        { script ended }
  77.  
  78.         paletteProc = 2048;        { Windoid with grow box }
  79.         palNoGrowProc = 2052;        { standard Windoid defproc }
  80.         palZoomProc = 2056;        { Windoid with zoom and grow }
  81.         palZoomNoGrow = 2060;        { Windoid with zoom and no grow }
  82.         hasZoom = 8;
  83.         hasTallTBar = 2;
  84.         toggleHilite = 1;
  85.  
  86.         maxCachedChecks = 16;        { maximum number of checkpoints in a script }
  87.  
  88.   { paramCount is set to these constants when first calling special XThings }
  89.         xMessageWatcherID = -2;
  90.         xVariableWatcherID = -3;
  91.         xScriptEditorID = -4;
  92.         xDebuggerID = -5;
  93.  
  94.   { XTalkObjectPtr^.objectKind values }
  95.         stackObj = 1;
  96.         bkgndObj = 2;
  97.         cardObj = 3;
  98.         fieldObj = 4;
  99.         buttonObj = 5;
  100.  
  101.   { selectors for ShowHCAlert's dialogs (shown as buttonID:buttonText) }
  102.         errorDlgID = 1;    { 1:OK (default) }
  103.         confirmDlgID = 2;    { 1:OK (default) and 2:Cancel }
  104.         confirmDelDlgID = 3;    { 1:Cancel (default) and 2:Delete }
  105.         yesNoCancelDlgID = 4;    { 1:Yes (default), 2:Cancel, and 3:No }
  106.  
  107.  
  108.     type
  109.         XCmdPtr = ^XCmdBlock;
  110.         XCmdBlock = record
  111.                 paramCount: INTEGER; { If = -1 then new use for XWindoids }
  112.                 params: array[1..16] of Handle;
  113.                 returnValue: Handle;
  114.                 passFlag: BOOLEAN;
  115.  
  116.                 entryPoint: ProcPtr; { to call back to HyperCard }
  117.                 request: INTEGER;
  118.                 result: INTEGER;
  119.                 inArgs: array[1..8] of LongInt;
  120.                 outArgs: array[1..4] of LongInt;
  121.             end;
  122.  
  123.         XWEventInfoPtr = ^XWEventInfo;
  124.         XWEventInfo = record
  125.                 event: EventRecord;
  126.                 eventWindow: WindowPtr;
  127.                 eventParams: array[1..9] of LongInt;
  128.                 eventResult: Handle;
  129.             end;
  130.  
  131.         XTalkObjectPtr = ^XTalkObject;
  132.         XTalkObject = record
  133.                 objectKind: INTEGER;    { stack, bkgnd, card, field, or button }
  134.                 stackNum: LongInt;    { reference number of the source stack }
  135.                 bkgndID: LongInt;
  136.                 cardID: LongInt;
  137.                 buttonID: LongInt;
  138.                 fieldID: LongInt;
  139.             end;
  140.  
  141.         CheckPtHandle = ^CheckPtPtr;
  142.         CheckPtPtr = ^CheckPts;
  143.         CheckPts = record
  144.                 checks: array[1..maxCachedChecks] of INTEGER;
  145.             end;
  146.  
  147.  
  148. (****  HyperTalk Utilities  ****)
  149.     function EvalExpr (paramPtr: XCmdPtr; expr: Str255): Handle;
  150.     procedure SendCardMessage (paramPtr: XCmdPtr; msg: Str255);
  151.     procedure SendHCMessage (paramPtr: XCmdPtr; msg: Str255);
  152.     procedure RunHandler (paramPtr: XCmdPtr; handler: Handle);
  153.  
  154. (****  Memory Utilities  ****)
  155.     function GetGlobal (paramPtr: XCmdPtr; globName: Str255): Handle;
  156.     procedure SetGlobal (paramPtr: XCmdPtr; globName: Str255; globValue: Handle);
  157.     procedure ZeroBytes (paramPtr: XCmdPtr; dstPtr: Ptr; longCount: LongInt);
  158.  
  159. (****  String Utilities  ****)
  160.     procedure ScanToReturn (paramPtr: XCmdPtr; var scanPtr: Ptr);
  161.     procedure ScanToZero (paramPtr: XCmdPtr; var scanPtr: Ptr);
  162.     function StringEqual (paramPtr: XCmdPtr; str1, str2: Str255): BOOLEAN;
  163.     function StringLength (paramPtr: XCmdPtr; strPtr: Ptr): LongInt;
  164.     function StringMatch (paramPtr: XCmdPtr; pattern: Str255; target: Ptr): Ptr;
  165.     procedure ZeroTermHandle (paramPtr: XCmdPtr; hndl: Handle);
  166.  
  167. (****  String Conversions  ****)
  168.     procedure BoolToStr (paramPtr: XCmdPtr; bool: BOOLEAN; var str: Str255);
  169.     procedure ExtToStr (paramPtr: XCmdPtr; num: Extended; var str: Str255);
  170.     procedure LongToStr (paramPtr: XCmdPtr; posNum: LongInt; var str: Str255);
  171.     procedure NumToHex (paramPtr: XCmdPtr; num: LongInt; nDigits: INTEGER; var str: Str255);
  172.     procedure NumToStr (paramPtr: XCmdPtr; num: LongInt; var str: Str255);
  173.     function PasToZero (paramPtr: XCmdPtr; str: Str255): Handle;
  174.     procedure PointToStr (paramPtr: XCmdPtr; pt: Point; var str: Str255);
  175.     procedure RectToStr (paramPtr: XCmdPtr; rct: Rect; var str: Str255);
  176.     procedure ReturnToPas (paramPtr: XCmdPtr; zeroStr: Ptr; var pasStr: Str255);
  177.     function StrToBool (paramPtr: XCmdPtr; str: Str255): BOOLEAN;
  178.     function StrToExt (paramPtr: XCmdPtr; str: Str255): Extended;
  179.     function StrToLong (paramPtr: XCmdPtr; str: Str255): LongInt;
  180.     function StrToNum (paramPtr: XCmdPtr; str: Str255): LongInt;
  181.     procedure StrToPoint (paramPtr: XCmdPtr; str: Str255; var pt: Point);
  182.     procedure StrToRect (paramPtr: XCmdPtr; str: Str255; var rct: Rect);
  183.     procedure ZeroToPas (paramPtr: XCmdPtr; zeroStr: Ptr; var pasStr: Str255);
  184.  
  185. (****  Field Utilities  ****)
  186.     function GetFieldByID (paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER): Handle;
  187.     function GetFieldByName (paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldName: Str255): Handle;
  188.     function GetFieldByNum (paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldNum: INTEGER): Handle;
  189.     procedure SetFieldByID (paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER; fieldVal: Handle);
  190.     procedure SetFieldByName (paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldName: Str255; fieldVal: Handle);
  191.     procedure SetFieldByNum (paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldNum: INTEGER; fieldVal: Handle);
  192.     function GetFieldTE (paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID, fieldNum: INTEGER; fieldNamePtr: StringPtr): TEHandle;
  193.     procedure SetFieldTE (paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID, fieldNum: INTEGER; fieldNamePtr: StringPtr; fieldTE: TEHandle);
  194.  
  195. (****  Miscellaneous Utilities  ****)
  196.     procedure BeginXSound (paramPtr: XCmdPtr; window: WindowPtr);
  197.     procedure EndXSound (paramPtr: XCmdPtr);
  198.     function GetFilePath (paramPtr: XCmdPtr; fileName: Str255; numTypes: INTEGER; typeList: SFTypeList; askUser: BOOLEAN; var fileType: OSType; var fullName: Str255): BOOLEAN;
  199.     procedure GetXResInfo (paramPtr: XCmdPtr; var resFile: INTEGER; var resID: INTEGER; var rType: ResType; var name: Str255);
  200.     procedure Notify (paramPtr: XCmdPtr);
  201.     procedure SendHCEvent (paramPtr: XCmdPtr; event: EventRecord);
  202.     procedure SendWindowMessage (paramPtr: XCmdPtr; windPtr: WindowPtr; windowName: Str255; msg: Str255);
  203.     function FrontDocWindow (paramPtr: XCmdPtr): WindowPtr;
  204.     function StackNameToNum (paramPtr: XCmdPtr; stackName: Str255): LongInt;
  205.     function ShowHCAlert (paramPtr: XCMDPtr; dlgID: INTEGER; promptStr: Str255): INTEGER;
  206.  
  207. (****  Creating and Disposing XWindoids  ****)
  208.     function NewXWindow (paramPtr: XCmdPtr; boundsRect: Rect; title: Str255; visible: BOOLEAN; procID: INTEGER; color: BOOLEAN; floating: BOOLEAN): WindowPtr;
  209.     function GetNewXWindow (paramPtr: XCmdPtr; templateType: ResType; templateID: INTEGER; color: BOOLEAN; floating: BOOLEAN): WindowPtr;
  210.     procedure CloseXWindow (paramPtr: XCmdPtr; window: WindowPtr);
  211.  
  212. (****  XWindoid Utilities  ****)
  213.     procedure HideHCPalettes (paramPtr: XCmdPtr);
  214.     procedure ShowHCPalettes (paramPtr: XCmdPtr);
  215.     procedure RegisterXWMenu (paramPtr: XCmdPtr; window: WindowPtr; menu: MenuHandle; registering: BOOLEAN);
  216.     procedure SetXWIdleTime (paramPtr: XCmdPtr; window: WindowPtr; interval: LongInt);
  217.     procedure XWHasInterruptCode (paramPtr: XCmdPtr; window: WindowPtr; haveCode: BOOLEAN);
  218.     procedure XWAlwaysMoveHigh (paramPtr: XCmdPtr; window: WindowPtr; moveHigh: BOOLEAN);
  219.     procedure XWAllowReEntrancy (paramPtr: XCmdPtr; window: WindowPtr; allowSysEvts: BOOLEAN; allowHCEvts: BOOLEAN);
  220.  
  221. (****  Text Editing Utilities  ****)
  222.     procedure BeginXWEdit (paramPtr: XCmdPtr; window: WindowPtr);
  223.     procedure EndXWEdit (paramPtr: XCmdPtr; window: WindowPtr);
  224.     function HCWordBreakProc (paramPtr: XCmdPtr): ProcPtr;
  225.     procedure PrintTEHandle (paramPtr: XCmdPtr; hTE: TEHandle; header: StringPtr);
  226.  
  227. (****  Script Editor support  ****)
  228.     function GetCheckPoints (paramPtr: XCmdPtr): CheckPtHandle;
  229.     procedure SetCheckPoints (paramPtr: XCmdPtr; checkLines: CheckPtHandle);
  230.     procedure FormatScript (paramPtr: XCmdPtr; scriptHndl: Handle; var insertionPoint: LongInt; quickFormat: BOOLEAN);
  231.     procedure SaveXWScript (paramPtr: XCmdPtr; scriptHndl: Handle);
  232.     procedure GetObjectName (paramPtr: XCmdPtr; theObject: XTalkObjectPtr; var objName: Str255);
  233.     procedure GetObjectScript (paramPtr: XCmdPtr; theObject: XTalkObjectPtr; var scriptHndl: Handle);
  234.     procedure SetObjectScript (paramPtr: XCmdPtr; theObject: XTalkObjectPtr; scriptHndl: Handle);
  235.  
  236. (****  Debugging Tools support  ****)
  237.     procedure AbortScript (paramPtr: XCmdPtr);
  238.     procedure GoScript (paramPtr: XCmdPtr);
  239.     procedure StepScript (paramPtr: XCmdPtr; stepInto: BOOLEAN);
  240.     procedure CountHandlers (paramPtr: XCmdPtr; var handlerCount: INTEGER);
  241.     procedure GetHandlerInfo (paramPtr: XCmdPtr; handlerNum: INTEGER; var handlerName: Str255; var objectName: Str255; var varCount: INTEGER);
  242.     procedure GetVarInfo (paramPtr: XCmdPtr; handlerNum: INTEGER; varNum: INTEGER; var varName: Str255; var isGlobal: BOOLEAN; var varValue: Str255; varHndl: Handle);
  243.     procedure SetVarValue (paramPtr: XCmdPtr; handlerNum: INTEGER; varNum: INTEGER; varHndl: Handle);
  244.     function GetStackCrawl (paramPtr: XCmdPtr): Handle;
  245.     procedure TraceScript (paramPtr: XCmdPtr; traceInto: BOOLEAN);
  246.  
  247.  
  248.     { UsingHyperXCmd }
  249.  
  250.  
  251. implementation
  252. end.
  253.